﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Регл)
	///</summary>
	[DataContract]
	public enum ОтношениеКВоинскомуУчету
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"321484e6-737a-4dd1-812b-515ed47edcc6\", \"Представление\":\"Состоит\"}")]
		Состоит = 0,//Состоит на воинском учете
		[EnumMember(Value = "{\"Ссылка\":\"37922425-4413-4798-bb3a-484160d6d6bb\", \"Представление\":\"Встает\"}")]
		Встает = 1,//Встает на воинский учет
		[EnumMember(Value = "{\"Ссылка\":\"af805963-6f0e-4309-b6a6-4bd38174f910\", \"Представление\":\"НеСостоит\"}")]
		НеСостоит = 2,//Не состоит на воинском учете (но должен)
		[EnumMember(Value = "{\"Ссылка\":\"6001f41e-3c3e-46d0-9078-6778b5029ae4\", \"Представление\":\"СнятПоВозрасту\"}")]
		СнятПоВозрасту = 3,//Снят с воинского учета по возрасту
		[EnumMember(Value = "{\"Ссылка\":\"d03e08d7-16ec-4d55-871f-aaa445c1a49b\", \"Представление\":\"СнятПоСостояниюЗдоровья\"}")]
		СнятПоСостояниюЗдоровья = 4,//Снят с воинского учета по состоянию здоровья
	}
	public static partial class ОтношениеКВоинскомуУчету_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Состоит = new Guid("5e512b81-7ed4-c6dc-4dd1-737a321484e6");//Состоит на воинском учете
		public static readonly Guid Встает = new Guid("41483abb-d660-bbd6-4798-441337922425");//Встает на воинский учет
		public static readonly Guid НеСостоит = new Guid("d34ba6b6-7481-10f9-4309-6f0eaf805963");//Не состоит на воинском учете (но должен)
		public static readonly Guid СнятПоВозрасту = new Guid("78677890-02b5-e49a-46d0-3c3e6001f41e");//Снят с воинского учета по возрасту
		public static readonly Guid СнятПоСостояниюЗдоровья = new Guid("a4aa1f87-c145-9ba4-4d55-16ecd03e08d7");//Снят с воинского учета по состоянию здоровья
		public static ОтношениеКВоинскомуУчету Получить(this ОтношениеКВоинскомуУчету Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ОтношениеКВоинскомуУчету Получить(this ОтношениеКВоинскомуУчету Значение, Guid Ссылка)
		{
			if(Ссылка == Состоит)
			{
				return ОтношениеКВоинскомуУчету.Состоит;
			}
			else if(Ссылка == Встает)
			{
				return ОтношениеКВоинскомуУчету.Встает;
			}
			else if(Ссылка == НеСостоит)
			{
				return ОтношениеКВоинскомуУчету.НеСостоит;
			}
			else if(Ссылка == СнятПоВозрасту)
			{
				return ОтношениеКВоинскомуУчету.СнятПоВозрасту;
			}
			else if(Ссылка == СнятПоСостояниюЗдоровья)
			{
				return ОтношениеКВоинскомуУчету.СнятПоСостояниюЗдоровья;
			}
			return ОтношениеКВоинскомуУчету.ПустаяСсылка;
		}
		public static byte[] Ключ(this ОтношениеКВоинскомуУчету Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ОтношениеКВоинскомуУчету Значение)
		{
			switch (Значение)
			{
				case ОтношениеКВоинскомуУчету.Состоит: return Состоит;
				case ОтношениеКВоинскомуУчету.Встает: return Встает;
				case ОтношениеКВоинскомуУчету.НеСостоит: return НеСостоит;
				case ОтношениеКВоинскомуУчету.СнятПоВозрасту: return СнятПоВозрасту;
				case ОтношениеКВоинскомуУчету.СнятПоСостояниюЗдоровья: return СнятПоСостояниюЗдоровья;
			}
			return Guid.Empty;
		}
	}
}